Nico Rieck: this patch series fixes visibility issues on Windows as explained in <http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-August/031214.html>. git-svn-id: https://llvm.org/svn/llvm-project/libcxx/trunk@188192 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/functional b/include/functional index 2130f0e..287bf72 100644 --- a/include/functional +++ b/include/functional
@@ -502,7 +502,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS plus : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY plus : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x + __y;} @@ -510,7 +510,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS plus<void> +struct _LIBCPP_TYPE_VIS_ONLY plus<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -524,7 +524,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS minus : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY minus : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x - __y;} @@ -532,7 +532,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS minus<void> +struct _LIBCPP_TYPE_VIS_ONLY minus<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -546,7 +546,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS multiplies : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY multiplies : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x * __y;} @@ -554,7 +554,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS multiplies<void> +struct _LIBCPP_TYPE_VIS_ONLY multiplies<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -568,7 +568,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS divides : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY divides : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x / __y;} @@ -576,7 +576,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS divides<void> +struct _LIBCPP_TYPE_VIS_ONLY divides<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -590,7 +590,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS modulus : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY modulus : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x % __y;} @@ -598,7 +598,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS modulus<void> +struct _LIBCPP_TYPE_VIS_ONLY modulus<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -612,7 +612,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS negate : unary_function<_Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY negate : unary_function<_Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x) const {return -__x;} @@ -620,7 +620,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS negate<void> +struct _LIBCPP_TYPE_VIS_ONLY negate<void> { template <class _Tp> _LIBCPP_INLINE_VISIBILITY auto operator()(_Tp&& __x) const @@ -634,7 +634,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS equal_to : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY equal_to : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x == __y;} @@ -642,7 +642,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS equal_to<void> +struct _LIBCPP_TYPE_VIS_ONLY equal_to<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -656,7 +656,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS not_equal_to : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY not_equal_to : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x != __y;} @@ -664,7 +664,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS not_equal_to<void> +struct _LIBCPP_TYPE_VIS_ONLY not_equal_to<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -678,7 +678,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS greater : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY greater : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x > __y;} @@ -686,7 +686,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS greater<void> +struct _LIBCPP_TYPE_VIS_ONLY greater<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -702,7 +702,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS greater_equal : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY greater_equal : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x >= __y;} @@ -710,7 +710,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS greater_equal<void> +struct _LIBCPP_TYPE_VIS_ONLY greater_equal<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -724,7 +724,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS less_equal : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY less_equal : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x <= __y;} @@ -732,7 +732,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS less_equal<void> +struct _LIBCPP_TYPE_VIS_ONLY less_equal<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -746,7 +746,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS logical_and : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY logical_and : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x && __y;} @@ -754,7 +754,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS logical_and<void> +struct _LIBCPP_TYPE_VIS_ONLY logical_and<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -768,7 +768,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS logical_or : binary_function<_Tp, _Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY logical_or : binary_function<_Tp, _Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x, const _Tp& __y) const {return __x || __y;} @@ -776,7 +776,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS logical_or<void> +struct _LIBCPP_TYPE_VIS_ONLY logical_or<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -790,7 +790,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS logical_not : unary_function<_Tp, bool> +struct _LIBCPP_TYPE_VIS_ONLY logical_not : unary_function<_Tp, bool> { _LIBCPP_INLINE_VISIBILITY bool operator()(const _Tp& __x) const {return !__x;} @@ -798,7 +798,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS logical_not<void> +struct _LIBCPP_TYPE_VIS_ONLY logical_not<void> { template <class _Tp> _LIBCPP_INLINE_VISIBILITY auto operator()(_Tp&& __x) const @@ -812,7 +812,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS bit_and : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY bit_and : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x & __y;} @@ -820,7 +820,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS bit_and<void> +struct _LIBCPP_TYPE_VIS_ONLY bit_and<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -834,7 +834,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS bit_or : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY bit_or : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x | __y;} @@ -842,7 +842,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS bit_or<void> +struct _LIBCPP_TYPE_VIS_ONLY bit_or<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -856,7 +856,7 @@ #else template <class _Tp> #endif -struct _LIBCPP_TYPE_VIS bit_xor : binary_function<_Tp, _Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY bit_xor : binary_function<_Tp, _Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x, const _Tp& __y) const {return __x ^ __y;} @@ -864,7 +864,7 @@ #if _LIBCPP_STD_VER > 11 template <> -struct _LIBCPP_TYPE_VIS bit_xor<void> +struct _LIBCPP_TYPE_VIS_ONLY bit_xor<void> { template <class _T1, class _T2> _LIBCPP_INLINE_VISIBILITY auto operator()(_T1&& __t, _T2&& __u) const @@ -875,14 +875,14 @@ #if _LIBCPP_STD_VER > 11 template <class _Tp = void> -struct _LIBCPP_TYPE_VIS bit_not : unary_function<_Tp, _Tp> +struct _LIBCPP_TYPE_VIS_ONLY bit_not : unary_function<_Tp, _Tp> { _LIBCPP_INLINE_VISIBILITY _Tp operator()(const _Tp& __x) const {return ~__x;} }; template <> -struct _LIBCPP_TYPE_VIS bit_not<void> +struct _LIBCPP_TYPE_VIS_ONLY bit_not<void> { template <class _Tp> _LIBCPP_INLINE_VISIBILITY auto operator()(_Tp&& __x) const @@ -891,7 +891,7 @@ #endif template <class _Predicate> -class _LIBCPP_TYPE_VIS unary_negate +class _LIBCPP_TYPE_VIS_ONLY unary_negate : public unary_function<typename _Predicate::argument_type, bool> { _Predicate __pred_; @@ -908,7 +908,7 @@ not1(const _Predicate& __pred) {return unary_negate<_Predicate>(__pred);} template <class _Predicate> -class _LIBCPP_TYPE_VIS binary_negate +class _LIBCPP_TYPE_VIS_ONLY binary_negate : public binary_function<typename _Predicate::first_argument_type, typename _Predicate::second_argument_type, bool> @@ -928,7 +928,7 @@ not2(const _Predicate& __pred) {return binary_negate<_Predicate>(__pred);} template <class __Operation> -class _LIBCPP_TYPE_VIS binder1st +class _LIBCPP_TYPE_VIS_ONLY binder1st : public unary_function<typename __Operation::second_argument_type, typename __Operation::result_type> { @@ -954,7 +954,7 @@ {return binder1st<__Operation>(__op, __x);} template <class __Operation> -class _LIBCPP_TYPE_VIS binder2nd +class _LIBCPP_TYPE_VIS_ONLY binder2nd : public unary_function<typename __Operation::first_argument_type, typename __Operation::result_type> { @@ -980,7 +980,7 @@ {return binder2nd<__Operation>(__op, __x);} template <class _Arg, class _Result> -class _LIBCPP_TYPE_VIS pointer_to_unary_function +class _LIBCPP_TYPE_VIS_ONLY pointer_to_unary_function : public unary_function<_Arg, _Result> { _Result (*__f_)(_Arg); @@ -998,7 +998,7 @@ {return pointer_to_unary_function<_Arg,_Result>(__f);} template <class _Arg1, class _Arg2, class _Result> -class _LIBCPP_TYPE_VIS pointer_to_binary_function +class _LIBCPP_TYPE_VIS_ONLY pointer_to_binary_function : public binary_function<_Arg1, _Arg2, _Result> { _Result (*__f_)(_Arg1, _Arg2); @@ -1016,7 +1016,7 @@ {return pointer_to_binary_function<_Arg1,_Arg2,_Result>(__f);} template<class _Sp, class _Tp> -class _LIBCPP_TYPE_VIS mem_fun_t : public unary_function<_Tp*, _Sp> +class _LIBCPP_TYPE_VIS_ONLY mem_fun_t : public unary_function<_Tp*, _Sp> { _Sp (_Tp::*__p_)(); public: @@ -1027,7 +1027,7 @@ }; template<class _Sp, class _Tp, class _Ap> -class _LIBCPP_TYPE_VIS mem_fun1_t : public binary_function<_Tp*, _Ap, _Sp> +class _LIBCPP_TYPE_VIS_ONLY mem_fun1_t : public binary_function<_Tp*, _Ap, _Sp> { _Sp (_Tp::*__p_)(_Ap); public: @@ -1050,7 +1050,7 @@ {return mem_fun1_t<_Sp,_Tp,_Ap>(__f);} template<class _Sp, class _Tp> -class _LIBCPP_TYPE_VIS mem_fun_ref_t : public unary_function<_Tp, _Sp> +class _LIBCPP_TYPE_VIS_ONLY mem_fun_ref_t : public unary_function<_Tp, _Sp> { _Sp (_Tp::*__p_)(); public: @@ -1061,7 +1061,7 @@ }; template<class _Sp, class _Tp, class _Ap> -class _LIBCPP_TYPE_VIS mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp> +class _LIBCPP_TYPE_VIS_ONLY mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp> { _Sp (_Tp::*__p_)(_Ap); public: @@ -1084,7 +1084,7 @@ {return mem_fun1_ref_t<_Sp,_Tp,_Ap>(__f);} template <class _Sp, class _Tp> -class _LIBCPP_TYPE_VIS const_mem_fun_t : public unary_function<const _Tp*, _Sp> +class _LIBCPP_TYPE_VIS_ONLY const_mem_fun_t : public unary_function<const _Tp*, _Sp> { _Sp (_Tp::*__p_)() const; public: @@ -1095,7 +1095,7 @@ }; template <class _Sp, class _Tp, class _Ap> -class _LIBCPP_TYPE_VIS const_mem_fun1_t : public binary_function<const _Tp*, _Ap, _Sp> +class _LIBCPP_TYPE_VIS_ONLY const_mem_fun1_t : public binary_function<const _Tp*, _Ap, _Sp> { _Sp (_Tp::*__p_)(_Ap) const; public: @@ -1118,7 +1118,7 @@ {return const_mem_fun1_t<_Sp,_Tp,_Ap>(__f);} template <class _Sp, class _Tp> -class _LIBCPP_TYPE_VIS const_mem_fun_ref_t : public unary_function<_Tp, _Sp> +class _LIBCPP_TYPE_VIS_ONLY const_mem_fun_ref_t : public unary_function<_Tp, _Sp> { _Sp (_Tp::*__p_)() const; public: @@ -1129,7 +1129,7 @@ }; template <class _Sp, class _Tp, class _Ap> -class _LIBCPP_TYPE_VIS const_mem_fun1_ref_t +class _LIBCPP_TYPE_VIS_ONLY const_mem_fun1_ref_t : public binary_function<_Tp, _Ap, _Sp> { _Sp (_Tp::*__p_)(_Ap) const; @@ -1228,7 +1228,7 @@ { }; -template<class _Fp> class _LIBCPP_TYPE_VIS function; // undefined +template<class _Fp> class _LIBCPP_TYPE_VIS_ONLY function; // undefined namespace __function { @@ -1379,7 +1379,7 @@ } // __function template<class _Rp, class ..._ArgTypes> -class _LIBCPP_TYPE_VIS function<_Rp(_ArgTypes...)> +class _LIBCPP_TYPE_VIS_ONLY function<_Rp(_ArgTypes...)> : public __function::__maybe_derive_from_unary_function<_Rp(_ArgTypes...)>, public __function::__maybe_derive_from_binary_function<_Rp(_ArgTypes...)> { @@ -1801,11 +1801,11 @@ {return __x.swap(__y);} template<class _Tp> struct __is_bind_expression : public false_type {}; -template<class _Tp> struct _LIBCPP_TYPE_VIS is_bind_expression +template<class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_bind_expression : public __is_bind_expression<typename remove_cv<_Tp>::type> {}; template<class _Tp> struct __is_placeholder : public integral_constant<int, 0> {}; -template<class _Tp> struct _LIBCPP_TYPE_VIS is_placeholder +template<class _Tp> struct _LIBCPP_TYPE_VIS_ONLY is_placeholder : public __is_placeholder<typename remove_cv<_Tp>::type> {}; namespace placeholders @@ -1813,16 +1813,16 @@ template <int _Np> struct __ph {}; -extern __ph<1> _1; -extern __ph<2> _2; -extern __ph<3> _3; -extern __ph<4> _4; -extern __ph<5> _5; -extern __ph<6> _6; -extern __ph<7> _7; -extern __ph<8> _8; -extern __ph<9> _9; -extern __ph<10> _10; +_LIBCPP_FUNC_VIS extern __ph<1> _1; +_LIBCPP_FUNC_VIS extern __ph<2> _2; +_LIBCPP_FUNC_VIS extern __ph<3> _3; +_LIBCPP_FUNC_VIS extern __ph<4> _4; +_LIBCPP_FUNC_VIS extern __ph<5> _5; +_LIBCPP_FUNC_VIS extern __ph<6> _6; +_LIBCPP_FUNC_VIS extern __ph<7> _7; +_LIBCPP_FUNC_VIS extern __ph<8> _8; +_LIBCPP_FUNC_VIS extern __ph<9> _9; +_LIBCPP_FUNC_VIS extern __ph<10> _10; } // placeholders @@ -2184,7 +2184,7 @@ #endif // _LIBCPP_HAS_NO_VARIADICS template <> -struct _LIBCPP_TYPE_VIS hash<bool> +struct _LIBCPP_TYPE_VIS_ONLY hash<bool> : public unary_function<bool, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2192,7 +2192,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<char> +struct _LIBCPP_TYPE_VIS_ONLY hash<char> : public unary_function<char, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2200,7 +2200,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<signed char> +struct _LIBCPP_TYPE_VIS_ONLY hash<signed char> : public unary_function<signed char, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2208,7 +2208,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<unsigned char> +struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned char> : public unary_function<unsigned char, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2218,7 +2218,7 @@ #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS template <> -struct _LIBCPP_TYPE_VIS hash<char16_t> +struct _LIBCPP_TYPE_VIS_ONLY hash<char16_t> : public unary_function<char16_t, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2226,7 +2226,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<char32_t> +struct _LIBCPP_TYPE_VIS_ONLY hash<char32_t> : public unary_function<char32_t, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2236,7 +2236,7 @@ #endif // _LIBCPP_HAS_NO_UNICODE_CHARS template <> -struct _LIBCPP_TYPE_VIS hash<wchar_t> +struct _LIBCPP_TYPE_VIS_ONLY hash<wchar_t> : public unary_function<wchar_t, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2244,7 +2244,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<short> +struct _LIBCPP_TYPE_VIS_ONLY hash<short> : public unary_function<short, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2252,7 +2252,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<unsigned short> +struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned short> : public unary_function<unsigned short, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2260,7 +2260,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<int> +struct _LIBCPP_TYPE_VIS_ONLY hash<int> : public unary_function<int, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2268,7 +2268,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<unsigned int> +struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned int> : public unary_function<unsigned int, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2276,7 +2276,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<long> +struct _LIBCPP_TYPE_VIS_ONLY hash<long> : public unary_function<long, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2284,7 +2284,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<unsigned long> +struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long> : public unary_function<unsigned long, size_t> { _LIBCPP_INLINE_VISIBILITY @@ -2292,19 +2292,19 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<long long> +struct _LIBCPP_TYPE_VIS_ONLY hash<long long> : public __scalar_hash<long long> { }; template <> -struct _LIBCPP_TYPE_VIS hash<unsigned long long> +struct _LIBCPP_TYPE_VIS_ONLY hash<unsigned long long> : public __scalar_hash<unsigned long long> { }; template <> -struct _LIBCPP_TYPE_VIS hash<float> +struct _LIBCPP_TYPE_VIS_ONLY hash<float> : public __scalar_hash<float> { _LIBCPP_INLINE_VISIBILITY @@ -2318,7 +2318,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<double> +struct _LIBCPP_TYPE_VIS_ONLY hash<double> : public __scalar_hash<double> { _LIBCPP_INLINE_VISIBILITY @@ -2332,7 +2332,7 @@ }; template <> -struct _LIBCPP_TYPE_VIS hash<long double> +struct _LIBCPP_TYPE_VIS_ONLY hash<long double> : public __scalar_hash<long double> { _LIBCPP_INLINE_VISIBILITY